const EventEmitter = require('events')

class MyEmitter extends EventEmitter{

}
// MyEmitter.prototype.age = 10

// let myEmitter = new MyEmitter()
// myEmitter.name = 'jack'

// myEmitter.on('myEvent', function(a, b){
//     console.log(a + b);
//     console.log(Object.getPrototypeOf(Object.getPrototypeOf(this)));
//     console.log(this.age);

// })

// myEmitter.emit('myEvent', 3, 5)

// setTimeout(() => console.log(1));
// setImmediate(() => console.log(2));
// process.nextTick(() => console.log(3));
// Promise.resolve().then(() => console.log(4));
// (() => console.log(5))();

const myEmitter = new MyEmitter()

// myEmitter.on('error', err => {
//     console.error(err.message)
// })
// myEmitter.emit('error', new Error('错误信息'))

// myEmitter.once('newListener', (event, listener) => {
//     console.log(event);
//     console.log('bbb');
//     listener()
// })

// const cba = () => {
//     console.log('bbb');
// }
// myEmitter.on('event', () => {
//     console.log('aaa');
//     myEmitter.removeListener('event', cba)
// });

// myEmitter.on('event',cba)


// myEmitter.emit('event');


// myEmitter.emit('event');

// console.log(myEmitter.eventNames());

myEmitter
    .on('data', ()=> {console.log(1);})
    .on('data', ()=> {console.log(2);})
    .on('data', ()=> {console.log(3);})

myEmitter.emit('data') 